package main

import "fmt"

func main() {

	/*
		数据类型：
		  基本数据类型：整型、浮点、布尔、字符串
		  复合类型： array,slice,map, struct, pointer,function,channel...
	*/

	// 创建方式1
	var arr [4]string
	arr[0] = "1234"
	fmt.Println(arr)
	fmt.Println(len(arr))
	fmt.Println(cap(arr))

	// 创建方式2
	var b = [4]int{1, 2, 4, 5}
	fmt.Println(b)

	var c = [5]int{1, 2, 4}
	fmt.Println(c)

	// 创建方式3
	var f = [...]int{1, 2, 3, 4, 5}
	fmt.Println(f)

	//---------------------------------------------------------------------
	// 数组遍历
	for i := 0; i < len(arr); i++ {
		fmt.Println(arr[i])
	}

	// 数组遍历2
	for index, value := range arr {
		fmt.Println(index)
		fmt.Println(value)
	}

	//-------------------------------------------------------
	//数组是值传递
	var num = [3]int{1, 2, 3}
	num2 := num
	fmt.Println(num)
	fmt.Println(num2)
	num2[0] = 3
	fmt.Println(num)
	fmt.Println(num2)

	// 值类型： int float string bool  array struct
	// 引用类型： slice,map,

}
